home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / demos / VisualAge for Java 2.0 Entry / setup / data1.cab / ide-e / IDE / cache / 1O942XH (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-16  |  5.6 KB  |  146 lines

  1. package com.sun.java.swing;
  2.  
  3. import com.sun.java.accessibility.Accessible;
  4. import com.sun.java.accessibility.AccessibleContext;
  5. import com.sun.java.accessibility.AccessibleState;
  6. import com.sun.java.swing.plaf.MenuItemUI;
  7. import java.awt.Component;
  8. import java.awt.Container;
  9. import java.awt.event.KeyEvent;
  10. import java.awt.event.MouseEvent;
  11.  
  12. public class JMenuItem extends AbstractButton implements Accessible, MenuElement {
  13.    private KeyStroke accelerator;
  14.  
  15.    public JMenuItem() {
  16.       this((String)null, (Icon)null);
  17.       ((JComponent)this).setRequestFocusEnabled(false);
  18.    }
  19.  
  20.    public JMenuItem(Icon icon) {
  21.       this((String)null, icon);
  22.       ((JComponent)this).setRequestFocusEnabled(false);
  23.    }
  24.  
  25.    public JMenuItem(String text) {
  26.       this(text, (Icon)null);
  27.    }
  28.  
  29.    public JMenuItem(String text, int mnemonic) {
  30.       ((AbstractButton)this).setModel(new DefaultButtonModel());
  31.       this.init(text, (Icon)null);
  32.       ((AbstractButton)this).setBorderPainted(false);
  33.       ((AbstractButton)this).setFocusPainted(false);
  34.       ((AbstractButton)this).setHorizontalTextPosition(2);
  35.       ((AbstractButton)this).setHorizontalAlignment(2);
  36.       ((AbstractButton)this).setMnemonic(mnemonic);
  37.       this.updateUI();
  38.    }
  39.  
  40.    public JMenuItem(String text, Icon icon) {
  41.       ((AbstractButton)this).setModel(new DefaultButtonModel());
  42.       this.init(text, icon);
  43.       ((AbstractButton)this).setBorderPainted(false);
  44.       ((AbstractButton)this).setFocusPainted(false);
  45.       ((AbstractButton)this).setHorizontalTextPosition(2);
  46.       ((AbstractButton)this).setHorizontalAlignment(2);
  47.       this.updateUI();
  48.    }
  49.  
  50.    public KeyStroke getAccelerator() {
  51.       return this.accelerator;
  52.    }
  53.  
  54.    public AccessibleContext getAccessibleContext() {
  55.       if (super.accessibleContext == null) {
  56.          super.accessibleContext = new AccessibleJMenuItem(this);
  57.       }
  58.  
  59.       return super.accessibleContext;
  60.    }
  61.  
  62.    public Component getComponent() {
  63.       return this;
  64.    }
  65.  
  66.    public MenuElement[] getSubElements() {
  67.       return new MenuElement[0];
  68.    }
  69.  
  70.    public String getUIClassID() {
  71.       return "MenuItemUI";
  72.    }
  73.  
  74.    protected void init(String text, Icon icon) {
  75.       ((Container)this).setLayout(new OverlayLayout(this));
  76.       if (text != null) {
  77.          ((AbstractButton)this).setText(text);
  78.       }
  79.  
  80.       if (icon != null) {
  81.          ((AbstractButton)this).setIcon(icon);
  82.       }
  83.  
  84.       ((Component)this).addFocusListener(new MenuItemFocusListener());
  85.    }
  86.  
  87.    public boolean isArmed() {
  88.       ButtonModel model = ((AbstractButton)this).getModel();
  89.       return model.isArmed();
  90.    }
  91.  
  92.    public void menuSelectionChanged(boolean isIncluded) {
  93.       this.setArmed(isIncluded);
  94.    }
  95.  
  96.    public void processKeyEvent(KeyEvent e, MenuElement[] path, MenuSelectionManager manager) {
  97.       ((MenuItemUI)((AbstractButton)this).getUI()).processKeyEvent(this, e, path, manager);
  98.    }
  99.  
  100.    public void processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager) {
  101.       ((MenuItemUI)((AbstractButton)this).getUI()).processMouseEvent(this, event, path, manager);
  102.    }
  103.  
  104.    public void setAccelerator(KeyStroke keyStroke) {
  105.       if (this.accelerator != null) {
  106.          ((JComponent)this).unregisterKeyboardAction(this.accelerator);
  107.       }
  108.  
  109.       ((JComponent)this).registerKeyboardAction(new 1(this), keyStroke, 2);
  110.       this.accelerator = keyStroke;
  111.    }
  112.  
  113.    public void setArmed(boolean b) {
  114.       ButtonModel model = ((AbstractButton)this).getModel();
  115.       boolean oldValue = model.isArmed();
  116.       if (super.accessibleContext != null && oldValue != b) {
  117.          if (b) {
  118.             super.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.ARMED);
  119.          } else {
  120.             super.accessibleContext.firePropertyChange("AccessibleState", AccessibleState.ARMED, (Object)null);
  121.          }
  122.       }
  123.  
  124.       if (model.isArmed() != b) {
  125.          model.setArmed(b);
  126.       }
  127.  
  128.    }
  129.  
  130.    public void setEnabled(boolean b) {
  131.       if (!b) {
  132.          this.setArmed(false);
  133.       }
  134.  
  135.       super.setEnabled(b);
  136.    }
  137.  
  138.    public void setUI(MenuItemUI ui) {
  139.       super.setUI(ui);
  140.    }
  141.  
  142.    public void updateUI() {
  143.       this.setUI((MenuItemUI)UIManager.getUI(this));
  144.    }
  145. }
  146.